Micron Document
`:top
`!Sparse`! bezeichnet in `F33f`_`[Microsoft-SQL`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Microsoft_SQL_Server]`_`f sowohl eine spezielle Spaltenkonfiguration, wie auch das Argument mittels der die Spalte dazu entsprechend konfiguriert wird.

Unabhängig von ihrem `F33f`_`[Datentyp`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Microsoft_SQL]`_`f (wie z. B. `*int, varchar`* oder `*date`*) können Spalten einer `F33f`_`[Datenbank`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Datenbank]`_`f je nach Konfiguration auch `F33f`_`[Nullwerte`:/page/entry.mu`zim=wikipedia_de_all_nopic_2026-01.zim|entry_path=Nullwert]`_`f enthalten. Der Nullwert ergibt sich aber nicht einfach durch die fehlende Existenz eines Wertes, sondern muss explizit als Nullwert gespeichert werden. Dies geschieht bei Microsoft-SQL durch einen sogenannten Null-Bitmap. Wird bei einer Spalte davon ausgegangen, dass sie spärlich (`*sparse`*) besetzt sein wird, d. h. mehrheitlich Nullwerte enthalten wird, kann diese mittels des Arguments `*SPARSE NULL`*`:cite-ref-1[`F5bf`_`[1`#cite-note-1]`_`f] zu einer Sparse-Spalte (engl. `*Sparse Column`*) konfiguriert werden. Eine Sparse-Spalte benötigt zur Speicherung von Nullwerten wirklich keinen Speicherplatz mehr, benötigt jedoch dafür mehr Speicher, wenn ein anderer Wert als der Nullwert gespeichert wird.

>>Contents

• `F0af`_`[Beispiel`#beispiel]`_`f
• `F0af`_`[Einschränkungen`#einschr-nkungen]`_`f
• `F0af`_`[Einzelnachweise`#einzelnachweise]`_`f

-─

>>Beispiel

Eine Liegenschaftsverwaltung legt für eine neue Liegenschaft eine Tabelle für ihre Mieter an. Die Liegenschaft enthält 200 Wohnungen, aber nur 5 Parkplätze. In diesem Beispiel kann man bereits beim Erstellen der Tabelle im Voraus sagen, dass die Spalte `*Parkplatznummer`* im Minimum also 195 mal den Nullwert enthalten wird, sollten alle Parkplätze vermietet worden sein. Hier lohnt es sich daher, die Spalte `*Parkplatznummer`* als Sparse-Spalte zu konfigurieren, um Speicherplatz zu sparen.

`B100`F9d9CREATE TABLE dbo.MieterLiegenschaftXYZ`f`b
`B100`F9d9 (Vorname varchar(50) PRIMARY KEY,`f`b
`B100`F9d9 Nachname varchar(50),`f`b
`B100`F9d9 Wohnungsnummer int,`f`b
`B100`F9d9 Mietzins money,`f`b
`B100`F9d9 Parkplatznummer int SPARSE NULL ) ;`f`b

>>Einschränkungen

Die Verwendung von Sparse-Spalten bringt eine Reihe von Einschränkungen mit sich. Darunter die folgenden:`:cite-ref-2[`F5bf`_`[2`#cite-note-2]`_`f]

• Sparse-Spalten können nicht gleichzeitig als `*IDENTITY, ROWGUIDCOL`* oder `*NOT NULL`* konfiguriert werden. Wobei Letzteres als solches keinen Sinn ergeben würde.
• Sparse-Spalten können nicht auf Spalten des Datentyps `*text, ntext, image, timestamp, geometry, geography`* oder vom Benutzer angelegte Datentypen angewendet werden.
• Es können keine `*Cluster Index`* oder `*Primary Key Index`* auf Sparse-Spalten angewendet werden

>>Einzelnachweise

`:cite-note-1`!1.`! `F0af`_`[↑`#cite-ref-1]`_`f Microsoft MSDN: CREATE TABLE Befehlsreferenz
`:cite-note-2`!2.`! `F0af`_`[↑`#cite-ref-2]`_`f Blogspot: SQLTrends - Database and Sql Server

`c`F0af`_`[↑ Back to top`#top]`_`f`a